#include <iostream>
#include <string.h>
#include <unistd.h>
#include "ShareMemory.hpp"
#include "Time.hpp"
#include "Fifo.hpp"

int main()
{
    // 1.获取共享内存
    shm.GetShm();
    // 2.将共享内存与进程地址空间挂接
    shm.AttachShm();

    gfifo.OpenPipeForWrite();

    struct data *image = (struct data *)shm.GetAddr();
    while (true)
    {
        strcpy(image->status, "最新数据");
        strcpy(image->lasttime, GetCurrTime().c_str());
        strcpy(image->image, "xxxxxxxxxxxxxxxxxxxxxxxxxx");
        gfifo.Signal(); //利用命名管道实现共享内存的保护机制
        sleep(3);
        // strcpy(image->status, "旧数据");
        // sleep(3);
    }
    // 3.将共享内存与进程地址空间去关联
    shm.DetachShm();

    return 0;
}